package org.stephen.recommend.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
/**
 * ClassName: PropGetKit
 * Description: 推荐算法参数
 * Date: 2020/12/8 20:38
 *
 * @author stephen.qiu
 * @version 1.0
 */
@Configuration
@ConfigurationProperties(prefix = "prop")
@PropertySource(value = "classpath:/paraConfig.properties", encoding = "UTF-8")
public class PropGetKit {
    /**
     * each user similarity users number
     */
    private int similarityUserNum;
    /**
     * Valid specific day the news published after which are still valuable
     */
    private int beforeDays;
    /**
     * Valid specific day after which those who has browsed news can be regarded "active"
     */
    private int activeDay;
    /**
     * Recommend Num from CF(Collaborative Filtering)
     */
    private int CFRecNum;
    /**
     * Valid specific day after which users' browsing history would be calculated
     */
    private int CFValidDay;
    /**
     * Recommend Num from CB(Content-Based Recommend)
     */
    private int CBRecNum;
    /**
     * Set a previous day after which the browsing history will be calculated with, namely, is still in time
     */
    private int previousDays;
    /**
     * TF-IDF's extracting numbers of keywords from every news
     */
    private int TFIDFKeywordsNum;

    /**
     * total recommend num
     */
    private int totalRecNum;
    /**
     * article score at the beginning
     */
    private int initScore;
    /**
     * article can get this score when the article has one read
     */
    private int readScore;
    /**
     * article can get this score when the article has one like
     */
    private int likeScore;
    /**
     * article can get this score when the article has one comment
     */
    private int commentScore;
    /**
     * the Decline factor that score change 100 to 1 in 10 days
     */
    private Double declineFactor;

    private int updateMin;

    public int getSimilarityUserNum() {
        return similarityUserNum;
    }

    public void setSimilarityUserNum(int similarityUserNum) {
        this.similarityUserNum = similarityUserNum;
    }

    public int getBeforeDays() {
        return beforeDays;
    }

    public void setBeforeDays(int beforeDays) {
        this.beforeDays = beforeDays;
    }

    public int getActiveDay() {
        return activeDay;
    }

    public void setActiveDay(int activeDay) {
        this.activeDay = activeDay;
    }

    public int getCFRecNum() {
        return CFRecNum;
    }

    public void setCFRecNum(int CFRecNum) {
        this.CFRecNum = CFRecNum;
    }

    public int getCFValidDay() {
        return CFValidDay;
    }

    public void setCFValidDay(int CFValidDay) {
        this.CFValidDay = CFValidDay;
    }

    public int getCBRecNum() {
        return CBRecNum;
    }

    public void setCBRecNum(int CBRecNum) {
        this.CBRecNum = CBRecNum;
    }

    public int getPreviousDays() {
        return previousDays;
    }

    public void setPreviousDays(int previousDays) {
        this.previousDays = previousDays;
    }

    public int getTFIDFKeywordsNum() {
        return TFIDFKeywordsNum;
    }

    public void setTFIDFKeywordsNum(int TFIDFKeywordsNum) {
        this.TFIDFKeywordsNum = TFIDFKeywordsNum;
    }

    public int getTotalRecNum() {
        return totalRecNum;
    }

    public void setTotalRecNum(int totalRecNum) {
        this.totalRecNum = totalRecNum;
    }

    public int getInitScore() {
        return initScore;
    }

    public void setInitScore(int initScore) {
        this.initScore = initScore;
    }

    public int getReadScore() {
        return readScore;
    }

    public void setReadScore(int readScore) {
        this.readScore = readScore;
    }

    public int getLikeScore() {
        return likeScore;
    }

    public void setLikeScore(int likeScore) {
        this.likeScore = likeScore;
    }

    public int getCommentScore() {
        return commentScore;
    }

    public void setCommentScore(int commentScore) {
        this.commentScore = commentScore;
    }

    public Double getDeclineFactor() {
        return declineFactor;
    }

    public void setDeclineFactor(Double declineFactor) {
        this.declineFactor = declineFactor;
    }

    public int getUpdateMin() {
        return updateMin;
    }

    public void setUpdateMin(int updateMin) {
        this.updateMin = updateMin;
    }
}
